package cn.iocoder.yudao.module.erp.controller.admin.purchaseorder.vo;

import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 采购订单分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PurchaseOrderPageReqVO extends PageParam {

    @Schema(description = "采购单号")
    private String billNo;

    @Schema(description = "上游单据（销售订单）")
    private String saleNo;

    @Schema(description = "采购方")
    private String billContacter;

    @Schema(description = "采购联系人", example = "芋艿")
    private String billContacterName;

    @Schema(description = "采购电话")
    private String billContacterMobile;

    @Schema(description = "仓库id", example = "20405")
    private Integer warehouseId;

    @Schema(description = "仓库名称", example = "王五")
    private String warehouseName;

    @Schema(description = "订单号")
    private String supplierOrderNo;

    @Schema(description = "供应商id", example = "974")
    private Long supplierId;

    @Schema(description = "供应商名称（公司）", example = "张三")
    private String supplierName;

    @Schema(description = "供应商联系人", example = "王五")
    private String supplierContacterName;

    @Schema(description = "供应商联系电话")
    private String supplierMobile;

    @Schema(description = "总数量")
    private BigDecimal aggregateQuantity;

    @Schema(description = "总金额")
    private BigDecimal aggregateAmount;

    @Schema(description = "优惠金额")
    private BigDecimal discountAmount;

    @Schema(description = "优惠后总金额")
    private BigDecimal totalAmount;

    @Schema(description = "交付地址")
    private String deliveryAddress;

    @Schema(description = "物品信息（名称+数量）")
    private String goodsInfo;

    @Schema(description = "项目id", example = "14415")
    private Integer projectId;

    @Schema(description = "项目名称", example = "王五")
    private String projectName;

    @Schema(description = "结算方式id", example = "21666")
    private Integer settlementId;

    @Schema(description = "结算方式", example = "芋艿")
    private String settlementName;

    @Schema(description = "备注")
    private String remarks;

    @Schema(description = "附件")
    private String file;

    @Schema(description = "是否采购")
    private Boolean syncPurchase;

    @Schema(description = "是否付款")
    private Boolean syncPay;

    @Schema(description = "是否入库")
    private Boolean syncIn;

    @Schema(description = "是否开票")
    private Boolean syncInvoice;

    @Schema(description = "添加时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}